

import tkinter as tk
from tkinter import ttk

root = tk.Tk()
root.title("Spinbox 虚拟事件示例")

# 创建一个数值型Spinbox
spinbox = ttk.Spinbox(root, from_=0, to=10, increment=1)
spinbox.pack(padx=20, pady=20)

# 绑定<<Increment>>事件
def on_increment(event):
    print(f"触发递增事件，当前值：{spinbox.get()}")
    # 可添加自定义逻辑，如超过某个值时提示
    if int(spinbox.get()) >= 8:
        print("警告：已接近最大值！")

# 绑定<<Decrement>>事件
def on_decrement(event):
    print(f"触发递减事件，当前值：{spinbox.get()}")
    # 可添加自定义逻辑，如低于某个值时提示
    if int(spinbox.get()) <= 2:
        print("警告：已接近最小值！")


# 2. 固定列表模式
str_spin = ttk.Spinbox(root, values=["苹果", "香蕉", "橙子"])
str_spin.set("香蕉")  # 设置默认值为列表中的"香蕉"
str_spin.pack()

spinbox.bind("<<Increment>>", on_increment)   #也就是方向上下
spinbox.bind("<<Decrement>>", on_decrement)

root.mainloop()